# -*- coding: utf-8 -*-#
#-------------------------------------------------------------------------------
# 建立者:        Young  
# Name:         demo8.07
# Description:
# Author:       $赵怡蕾
# Date:         2019/3/4
#-------------------------------------------------------------------------------

class MyClass:
    def method1(self):
        print("method1")
    def default(self):
        print("sefault")
my = MyClass()
# 判断method1是否在my中存在
if hasattr(my,'method1'):
    my.method1()
else:
    print("method2方法不存在")
# 判断method2是否在my中存在
if hasattr(my,'method2'):
    my.method2()
else:
    print("method2方法不存在")
# 从my对象中获取method2方法，如果method2方法不存在，返回default方法作为默认值
method = getattr(my,'method2',my.default)
# 如果method2方法不存在，那么method方法实际上就是my.default方法
method()

def method2():
    print("动态添加的method2")
# 通过setattr函数将method2函数作为method2方法的值添加到my对象中
# 如果method2方法在my中不存在，那么会添加一个新的method2方法，相当于动态添加method2方法
setattr(my,'method2',method2)
# 调用my对象中的么thod方法
my.method2\
    ()